/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import suministros.ejb30.entity.Direccionnopersona;
import suministros.ejb30.entity.Empresa;

/**
 *
 * @author Arturo
 */
@Entity
@Table(name = "Proveedor")
@NamedQueries({
    @NamedQuery(name = "Proveedor.findAll", query = "SELECT p FROM Proveedor p"),
    @NamedQuery(name = "Proveedor.findByCodProveedor", query = "SELECT p FROM Proveedor p WHERE p.codProveedor = :codProveedor"),
    @NamedQuery(name = "Proveedor.findByRazonSocial", query = "SELECT p FROM Proveedor p WHERE p.razonSocial = :razonSocial"),
    @NamedQuery(name = "Proveedor.findByDniRepLegal", query = "SELECT p FROM Proveedor p WHERE p.dniRepLegal = :dniRepLegal"),
    @NamedQuery(name = "Proveedor.findByRepLegal", query = "SELECT p FROM Proveedor p WHERE p.repLegal = :repLegal"),
    @NamedQuery(name = "Proveedor.findByRnpBienes", query = "SELECT p FROM Proveedor p WHERE p.rnpBienes = :rnpBienes"),
    @NamedQuery(name = "Proveedor.findByRnpServicios", query = "SELECT p FROM Proveedor p WHERE p.rnpServicios = :rnpServicios"),
    @NamedQuery(name = "Proveedor.findByTelefonos", query = "SELECT p FROM Proveedor p WHERE p.telefonos = :telefonos"),
    @NamedQuery(name = "Proveedor.findByFax", query = "SELECT p FROM Proveedor p WHERE p.fax = :fax"),
    @NamedQuery(name = "Proveedor.findByCorreo", query = "SELECT p FROM Proveedor p WHERE p.correo = :correo"),
    @NamedQuery(name = "Proveedor.findByGiroNegocio", query = "SELECT p FROM Proveedor p WHERE p.giroNegocio = :giroNegocio")})
public class Proveedor implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "cod_proveedor")
    private String codProveedor;
    @Column(name = "razon_social")
    private String razonSocial;
    @Column(name = "dni_rep_legal")
    private String dniRepLegal;
    @Column(name = "rep_legal")
    private String repLegal;
    @Column(name = "rnp_bienes")
    private String rnpBienes;
    @Column(name = "rnp_servicios")
    private String rnpServicios;
    @Column(name = "telefonos")
    private String telefonos;
    @Column(name = "fax")
    private String fax;
    @Basic(optional = false)
    @Column(name = "correo")
    private String correo;
    @Basic(optional = false)
    @Column(name = "giro_negocio")
    private String giroNegocio;
    @JoinColumn(name = "id_direccion", referencedColumnName = "id_direccion")
    @ManyToOne(optional = false)
    private Direccionnopersona idDireccion;
    @Column(name = "alta")
    private boolean isAlta;
    @Column(name = "fechaBaja")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaBaja;
    @Column(name = "fechaOperacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaOperacion;
    @JoinColumn(name = "id_empresa", referencedColumnName = "id_empresa")
    @ManyToOne(optional = false)
    private Empresa empresa;
    @Column(name = "cosechador")
    private boolean isCosechador;

    public Proveedor() {
      codProveedor=null;
      razonSocial=null;
      dniRepLegal=null;
      repLegal=null;
      rnpBienes=null;
      rnpServicios=null;
      telefonos=null;
      fax=null;
      correo=null;
      giroNegocio=null;
    }

    public Proveedor(String codProveedor) {
        this.codProveedor = codProveedor;
    }

    public Proveedor(String codProveedor, String correo, String giroNegocio) {
        this.codProveedor = codProveedor;
        this.correo = correo;
        this.giroNegocio = giroNegocio;
    }

    public Empresa getEmpresa() {
        return empresa;
    }

    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }

    public boolean isIsAlta() {
        return isAlta;
    }

    public void setIsAlta(boolean isAlta) {
        this.isAlta = isAlta;
    }

    public Date getFechaBaja() {
        return fechaBaja;
    }

    public void setFechaBaja(Date fechaBaja) {
        this.fechaBaja = fechaBaja;
    }

    public Date getFechaOperacion() {
        return fechaOperacion;
    }

    public void setFechaOperacion(Date fechaOperacion) {
        this.fechaOperacion = fechaOperacion;
    }

    public String getCodProveedor() {
        return codProveedor;
    }

    public void setCodProveedor(String codProveedor) {
        this.codProveedor = codProveedor;
    }

    public String getRazonSocial() {
        return razonSocial;
    }

    public void setRazonSocial(String razonSocial) {
        this.razonSocial = razonSocial;
    }

    public String getDniRepLegal() {
        return dniRepLegal;
    }

    public void setDniRepLegal(String dniRepLegal) {
        this.dniRepLegal = dniRepLegal;
    }

    public String getRepLegal() {
        return repLegal;
    }

    public void setRepLegal(String repLegal) {
        this.repLegal = repLegal;
    }

    public String getRnpBienes() {
        return rnpBienes;
    }

    public void setRnpBienes(String rnpBienes) {
        this.rnpBienes = rnpBienes;
    }

    public String getRnpServicios() {
        return rnpServicios;
    }

    public void setRnpServicios(String rnpServicios) {
        this.rnpServicios = rnpServicios;
    }

    public String getTelefonos() {
        return telefonos;
    }

    public void setTelefonos(String telefonos) {
        this.telefonos = telefonos;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public String getCorreo() {
        return correo;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public String getGiroNegocio() {
        return giroNegocio;
    }

    public void setGiroNegocio(String giroNegocio) {
        this.giroNegocio = giroNegocio;
    }

    public Direccionnopersona getIdDireccion() {
        return idDireccion;
    }

    public void setIdDireccion(Direccionnopersona idDireccion) {
        this.idDireccion = idDireccion;
    }

    public boolean isIsCosechador() {
        return isCosechador;
    }

    public void setIsCosechador(boolean isCosechador) {
        this.isCosechador = isCosechador;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codProveedor != null ? codProveedor.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof Proveedor)) {
            return false;
        }
        Proveedor other = (Proveedor) object;
        if ((this.codProveedor == null && other.codProveedor != null) || (this.codProveedor != null && !this.codProveedor.equals(other.codProveedor))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.Proveedor[codProveedor=" + codProveedor + "]";
    }

}
